//
//  SFCCredentials.h
//  SVNForCocoa
//
//  Created by Jeremy Pereira on 25/11/2013.
//  Copyright (c) 2013 Jeremy Pereira. All rights reserved.
//
/*!
 *    @file
 *    @brief Declarations associated with credentials.
 */
#import "SFCObject.h"

/*!
 *    @brief Credentials object for authentication system.
 */
@interface SFCCredentials : SFCObject

/*!
 *    @brief Designated initialiser.
 *
 *    @param maySave true if the credentials may be saved by the provider.
 *
 *    @return An initialised set of credentials.
 */
-(id) initWithMaySave: (bool) maySave;

/*!
 *    @brief If true, the provider may save the credentials if it wants.
 */
@property (assign) bool maySave;

@end

/*!
 *    @brief Credentials to be sent back when asked for @c svn.username 
 *           credentials
 */
@interface SFCUserNameCredentials : SFCCredentials

/*!
 *    @brief Designanted initialiser
 *
 *    @param name    User name these credentials represent.
 *    @param maySave Set to true if the provider will save the credentials.
 *
 *    @return Set of user name credentials.
 */
-(id) initWithName: (NSString*) name maySave: (bool) maySave;

@end

/*!
 *    @brief Credentials to be sent back when asked for @c svn.simple
 *           credentials
 */
@interface SFCSimpleCredentials : SFCCredentials

/*!
 *    @brief Designanted initialiser
 *
 *    @param name     User name these credentials represent.
 *    @param password The password associated with the user name.
 *    @param maySave  Set to true if the provider will save the credentials.
 *
 *    @return Set of user name credentials.
 */
-(id) initWithName: (NSString*) name
          password: (NSString*) password
           maySave: (bool) maySave;

@end
